1. Technical Field
The present invention relates generally to computer networks and more particularly to a method and system for monitoring and collecting data in a client-server computer network such as the Internet.
2. Description of the Related Art
The World Wide Web is the Internet""s multimedia information retrieval system. In the Web environment, client machines effect transactions to Web servers using the Hypertext Transfer Protocol (HTTP), which is a known application protocol providing users access to files (e.g., text, graphics, images, sound, video, etc.) using a standard page description language known as Hypertext Markup Language (HTML). HTML provides basic document formatting and allows the developer to specify xe2x80x9clinksxe2x80x9d to other servers and files. In the Internet paradigm, a network path to a server is identified by a so-called Uniform Resource Locator (URL) having a special syntax for defining a network connection. Use of an HTML-compatible browser (e.g., Netscape Navigator or Microsoft Internet Explorer) at a client machine involves specification of a link via the URL. In response, the client makes a request to the server identified in the link and receives in return a document formatted according to HTML.
The time period between the issuing of an HTTP request from the browser and the return of the requested document (or some component thereof) is known as the end user xe2x80x9cresponse time.xe2x80x9d The response time is a function of the time spent servicing the HTTP request at the Web server together with the network transmission time to and from the server. The network transmission time is sometimes referred to as the xe2x80x9cInternet delay.xe2x80x9d
Internet delay time could be measured in environments where the clocks of the client and server machines are synchronized or where an external time reference is available to both the client and the server. Given the diverse nature of the Internet environment, however, such solutions are impractical because these criteria could not be met for all of the clients of a large web server. One possible alternative would be to place a special client (a so-called xe2x80x9ctransaction monitorxe2x80x9d) on the Internet and have the transaction monitor periodically issue a request to the server of interest. The transaction monitor would have to be built with Internet delay time instrumentation included. Measured Internet delays for this client would then be presumed to be indicative of Internet delays that actual clients encountered. Such an approach also has significant drawbacks. The transaction monitor would presumably hook into the Internet at a fixed site or ISP (or at most a small number of sites). The Internet delay times measured by the transaction monitor would thus represent only a small fraction of the total paths that may be used to connect to a large server. In addition, such a transaction monitor would be useless for resolving questions about the Internet delay times for requests issued by way of an ISP that the transaction monitor is not currently using. Further, the transaction monitor would have to be constructed to use test transactions against the server. Test transactions are suspect in that they may omit entire classes of operations, and they can be difficult to create if the mission of the Web server is considered critical or secure (e.g., financial transactions).
There remains a need to provide an Internet delay monitor that overcomes these and other problems associated with the known prior art.
It is thus a primary object of the present invention to measure Internet delay encountered by a an HTTP request as it moves from a Web browser to a Web server and returns.
It is another primary object of this invention to determine how much of a response time for a particular Web request is due to Internet delay.
It is another object of this invention to implement Internet delay monitoring capability without resort to synchronized clocks at the client and server machines, to use of an external time reference, or to implementation of a dedicated transaction monitor.
Another important object of this invention is to measure the Internet delay characteristics of the network, in general, and a given URL, in particular, to enable Web site operators to evaluate quality of service.
It is still another important object of this invention to facilitate the collection of Internet delay data and statistics for use by Web site operators.
It is yet another object of this invention to enable suppliers of service on the Internet to measure the quality of that service. One of the components of quality of service is response time to a user""s request. By using the Internet delay monitor described in this invention, service providers will be able to determine whether poor response time is due to delays on the Internet or delays at the provider""s Web server.
These and other objects of the invention are provided in a method of determining Internet delays associated with requests from a Web client connectable to a Web server. The method begins at the Web server in response to a first HTTP request. In particular, the Web server serves a response to the first HTTP request and logs a server processing time associated with serving that response. After the response is delivered back to the Web client that initiated the request, an end user response time associated with the first HTTP request is calculated at the Web client. Upon a new HTTP request (typically the next one), the end user response time associated with the first HTTP request is then passed from the Web client to the Web server in a special cookie. The Web server then logs the response time of the first request. The Internet delay associated with the first request can then be calculated by matching the two log records and subtracting the server processing time from the first log record from the response time from the second log record.
This operation is preferably implemented by associating a unique response identifier (herein called RSPID) with each response generated by the server. The RSPID is sent to the client as part of each response to a request; this RSPID is also logged by the server along with the server processing time for the request. The client includes the RSPID along with the response time in the cookie that is sent to the Web server on the subsequent request. The server then logs the response time and the RSPID on receipt of the cookie. Well-known methods are used to match the records with corresponding RSPID""s during log analysis to then calculate the Internet delay.
Another aspect of the invention is the provision of a computer program product for determining Internet delay associated with an HTTP request from a Web client connectable to a Web server in a computer network. The computer program product includes first program code means supported at the Web server and responsive to a first HTTP request from the Web client for logging a server processing time associated with serving the response. The product further includes second program code means supported at the Web server and responsive to receipt of a second HTTP request from the Web client to the Web server for retrieving data defining the response time of the first HTTP request and using that data to calculate the Internet delay associated with the first HTTP request. The second program code means preferably calculates the Internet delay associated with the first HTTP request by subtracting the server processing time from the response time. As described above, preferably the data defining the response time of the first HTTP request is contained in a cookie of the second HTTP request.
The foregoing has outlined some of the more pertinent objects and features of the present invention. These objects should be construed to be merely illustrative of some of the more prominent features and applications of the invention. Many other beneficial results can be attained by applying the disclosed invention in a different manner or modifying the invention as will be described. Accordingly, other objects and a fuller understanding of the invention may be had by referring to the following Detailed Description of the Preferred Embodiment.